/* 
 * File:   Number.h
 * Author: Gab'z
 *
 * Created on 29 mai 2012, 12:25
 */

#ifndef NUMBER_H
#define	NUMBER_H

#include "Constant.h"
#include "../../../exception/ArithmeticException.h"

namespace calculator {

    class Number : public Constant {
    public:
        virtual ~Number();
        virtual Number* clone() const = 0;

    protected:
        Number();
    };

    Number* add(const Number* n1, const Number* n2) throw (ArithmeticException);
    Number* sub(const Number* n1, const Number* n2) throw (ArithmeticException);
    Number* mul(const Number* n1, const Number* n2) throw (ArithmeticException);
    Number* div(const Number* n1, const Number* n2) throw (ArithmeticException);
    Number* pow(const Number* n1, const Number* n2) throw (ArithmeticException);
}

#endif	/* NUMBER_H */
